<div id="preamble">
<h3>Installation</h3>

<p><b>I. Prerequisites</b></p>
<p>
You must have <a href="http://httpd.apache.org/">Apache httpd-2.0.43</a> 
or newer (as of this writing, 2.0.47) already installed in order to build 
and install mod_athena. If you have installed it in <code>/usr/local/apache2</code>,
everything will just work.
</p>
<p><b>II. Building</b></p>
<p>
Get the latest mod_athena code.
<br><code>tar xvfz athena-x.x</code>
<br><code>cd athena-x.x</code>
<br>adjust module/ath.h and module/ath_types.h if you want to tune the engine
<br><code>make</code>
<p>
<div class="example">
<b>notable compile time only vars</b> (with defaults)
<br>
<ul><b>(configure script):</b>
<li><code>--enable-athena (enables build of binary cmdline tool-- not working)</code></li>
<li><code>--with-apache2=(auto searches path if blank)</code></li>
<li><code>--with-doc-dir=(auto sets to /usr/local/www/data/mod_athena_doc if blank)</code></li>
<li><code>--with-cgi-bin=(auto sets to /usr/local/www/cgi-bin if blank)</code>
<blockquote>
<li><code>--disable-client-id (Do not pass Netscape proxy style cookie client-id)</code>
<blockquote>The X-Forwarded-For header already provides this data, 
and it also includes previous forwarding agents. The request originator 
is the first in the list, as long as upstream proxies honored this header.
This header, "client-ip", mimics the old 
Netscape Proxy server's non-standard record of the last requester.
</blockquote></li>
<li><code>--disable-debug (turn off debug messages and asserts)</code>
<blockquote>You probably want to keep this. Very little overhead, 
and provides some useful info in the logs to tune shm/lock stuff on 
your platform.
</blockquote></li>
<li><code>--disable-debugfunc (Turn off status/debug engine function</code>
<blockquote>You probably don't need this. Useful for developers,
it dumps configuration, farm, physical, and engine info formatted
in a single response. Call as: 
<code>your_athena_engine/status/debug?true</code>.
It requires the <code>?something_here</code>.
</blockquote></li>
</ul>

<ul><b>src/c/include/ath.h:</b> (in line occurrence order)
<li><code>ATH_MAX_EMBED 16</code> 
<blockquote>Limits the number of engine requests embedded in a single GET. The engine allows 
an incoming GET to actually contain more than one engine request. This is the max. 
More on this topic in "Sending statistics." Also see directive "AthAllowDiverseMulti."
</blockquote>
</li>
<li>all others run time changeable via directives</li>
</ul>
<ul><b>src/c/include/ath_constants.h:</b> (in line occurrence order)
<li><code>ATH_NAME_MAX 256</code>
<p>Max string length used for: farm names, physical hostnames, offline/down URLs.
Kept low to cut down on shared memory size. Why use long names?</p>
</li>
<li><code>ATH_PHYS_HARDMAX 256</code>
<p>The maximum number of physicals allowed. Affects shared memory size
(which is static). Tune higher if needed.</p>
</li>
<li><code>ATH_FARM_HARDMAX 32</code>
<p>The maximum number of farms allowed. Affects shared memory size
(which is static). Tune higher if needed.</p>
</li>
<li><pre>ATH_REQ_STATUS      "/status"
ATH_REQ_UPDATE      "/update"
ATH_REQ_BALANCE     "/balance"
ATH_REQ_MIRROR      "/mirror"
ATH_REF_HELLO       "/hello"
ATH_REQ_FARM        "/farm"
ATH_REQ_PHYS        "/phys"
ATH_REQ_ENGINE      "/engine"</pre>
<p>These are can all be change to shorter strings if you want 
to cut down on network traffic (come on, what's a couple bytes?).</p>
</li>
</ul>
</div>
<p><b>III. Installation</b></p>
<p>
Run <code>make install</code> to install the module in the
modules directory of your apache2 installation. You should
see "libath.so" show up there. If your doc-dir is set properly, this will 
also install docs. Likewise, if your cgi-bin was set correctly, this will 
install the perl module and app.
<ul>
<li><b>Module only install</b>
<br>After "make", cd to src/c/module and "make install" 
</li>
<li><b>Perl gui app only install</b>
<br>After "./configure...", cd to src/perl and "make" and "make install"
<br>This is common, since the perl gui usually runs on a host separate from the httpd module.
</li>
<li><b>Doc only install</b>
<br>After "./configure...", cd to doc/ and "make" and "make install"
</li>
</ul>
</p>
<p>The next three topics provide advice on configuring the engine.
</p>
</div>
